package com.diet.system.service;

import com.diet.system.domain.Dish;
import java.util.List;
import java.util.Map;

/**
 * 菜品Service接口
 */
public interface IDishService 
{
    /**
     * 查询菜品
     * 
     * @param dishId 菜品主键
     * @return 菜品
     */
    public Dish selectDishByDishId(Long dishId);

    /**
     * 查询菜品列表
     * 
     * @param dish 菜品
     * @return 菜品集合
     */
    public List<Dish> selectDishList(Dish dish);

    /**
     * 新增菜品
     * 
     * @param dish 菜品
     * @return 结果
     */
    public int insertDish(Dish dish);

    /**
     * 修改菜品
     * 
     * @param dish 菜品
     * @return 结果
     */
    public int updateDish(Dish dish);

    /**
     * 批量删除菜品
     * 
     * @param dishIds 需要删除的菜品主键集合
     * @return 结果
     */
    public int deleteDishByDishIds(Long[] dishIds);

    /**
     * 删除菜品信息
     * 
     * @param dishId 菜品主键
     * @return 结果
     */
    public int deleteDishByDishId(Long dishId);

    /**
     * 获取菜品收藏热度TOP6
     * 
     * @return 统计结果
     */
    public List<Map<String, Object>> selectDishHotTop6();

    /**
     * 获取菜品评分TOP6
     * 
     * @return 统计结果
     */
    public List<Map<String, Object>> selectDishRatingTop6();

    /**
     * 获取菜系分布统计
     * 
     * @return 统计结果
     */
    public List<Map<String, Object>> selectCuisineDistribution();

    /**
     * 获取热门菜品列表
     * 
     * @param sortType 排序类型
     * @return 菜品列表
     */
    public List<Dish> selectHotDishList(String sortType);

    /**
     * 搜索菜品
     * 
     * @param keyword 关键词
     * @return 菜品列表
     */
    public List<Dish> searchDishList(String keyword);
}